home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.io.DataInputStream;
-
- public class CDragDropResponse extends CDisplayResponse {
- static final short DRAG_FREELY = 0;
- static final short DRAG_ALONG_PATH = 1;
- static final short DRAG_WITHIN_RECTANGLE = 2;
- protected short m_cType = 0;
- protected String m_strObject = "";
- protected CPolyline m_Polyline = new CPolyline();
- protected CVarOrValue m_Base = new CVarOrValue();
- protected CVarOrValue m_End = new CVarOrValue();
- protected CVarOrValue m_ValidFrom = new CVarOrValue();
- protected CVarOrValue m_ValidTo = new CVarOrValue();
- protected Point m_ptCurrentPos = new Point(0, 0);
- private int m_nOnLine = -1;
-
- boolean LoadFromFile(DataInputStream var1) {
- this.m_cType = FileLoad.ReadCPlusByte(var1);
- FileLoad.ReadCPlusInt(var1);
- this.m_strObject = FileLoad.ReadCString(var1);
- this.m_Base.LoadFromFile(var1);
- this.m_End.LoadFromFile(var1);
- this.m_ValidFrom.LoadFromFile(var1);
- this.m_ValidTo.LoadFromFile(var1);
- this.m_Polyline.LoadFromFile(var1);
- return super.LoadFromFile(var1);
- }
-
- public CDragDropResponse() {
- super(50);
- }
-
- String GetDragObjectName() {
- return this.m_strObject;
- }
-
- Point GetPtWithinRect(Point var1, CRect var2) {
- Point var3 = new Point(var1.x, var1.y);
- CRect var4 = new CRect();
- if (this.m_cType == 0) {
- var4.reshape(Globals.thePresView.GetClientRect());
- } else {
- var4.reshape(super.m_rcActual.GetRect());
- }
-
- if (!((Rectangle)var4).isEmpty()) {
- if (var1.x < var4.x) {
- var3.x = var4.x;
- }
-
- if (var1.y < var4.y) {
- var3.y = var4.y;
- }
-
- if (var1.x + var2.width > var4.getRight()) {
- var3.x = var4.getRight() - var2.width;
- }
-
- if (var1.y + var2.height > var4.getBottom()) {
- var3.y = var4.getBottom() - var2.height;
- }
- }
-
- return var3;
- }
-
- CResponseReturn DoResponse(int var1) {
- return super.DoResponse(var1);
- }
-
- CVarOrValue GetEnd() {
- return this.m_End;
- }
-
- boolean OnMouseClick(int var1, int var2, Point var3, int var4, CRect var5) {
- boolean var6 = false;
- if (var1 == 2023) {
- if (this.m_cType == 0) {
- CDragDropResponse var7 = null;
- if (Globals.thePresView.m_pCapturedObject != null) {
- var7 = (CDragDropResponse)Globals.thePresView.m_pCapturedObject.GetSetByIconObject();
- }
-
- if (var7 != null && var7.GetDragObjectName().equals(this.m_strObject) && ((CDisplayResponse)this).HitTest(var3)) {
- var6 = true;
- }
- } else if (this.m_cType == 1 && Globals.thePresView.m_pCapturedObject != null && this.m_Base.GetValue() != this.m_End.GetValue() && Globals.thePresView.m_pCapturedObject.m_pIconObject.GetText().equals(Utils.InsertVariablesInString(this.m_strObject))) {
- long var17 = 0L;
- long var9 = 0L;
- long var11 = 0L;
- long var13 = 0L;
- Object var15 = null;
- if (this.m_nOnLine >= 0 && this.m_nOnLine < this.m_Polyline.npoints) {
- var17 = (long)this.m_Polyline.GetLength(this.m_nOnLine + 1);
- Point var16 = new Point(this.m_Polyline.xpoints[this.m_nOnLine], this.m_Polyline.ypoints[this.m_nOnLine]);
- var17 += (long)Utils.GetDistance(var16, this.m_ptCurrentPos);
- }
-
- if ((var13 = (long)this.m_Polyline.GetLength()) != 0L) {
- var9 = var17 * 100L / var13;
- }
-
- var11 = (long)this.m_Base.GetValue() + (long)(this.m_End.GetValue() - this.m_Base.GetValue()) * var9 / 100L;
- CVariable var21;
- if ((var21 = Utils.SearchAllVariables(CVariableTable.strDefVariables[23])) != null) {
- var21.SetValue((double)var11);
- }
-
- if (this.m_ValidFrom.GetValue() != 0 || this.m_ValidTo.GetValue() != 0) {
- var6 = true;
- }
- }
- }
-
- return var6;
- }
-
- CVarOrValue GetBase() {
- return this.m_Base;
- }
-
- boolean SetResponse() {
- if (Globals.thePresView.IsRunning() && this.m_strObject.length() > 0) {
- String var1 = Utils.InsertVariablesInString(this.m_strObject);
- CDrawObj var2 = Globals.thePresView.FindDrawObject(var1);
- if (var2 != null) {
- var2.SetMoveable(this);
- }
-
- if (this.m_cType == 1 && this.m_Polyline.npoints > 1) {
- this.m_nOnLine = -1;
- }
- }
-
- return true;
- }
-
- boolean HitTestCheck(Point var1) {
- boolean var2 = true;
- if (this.m_cType == 1 && this.m_Polyline.GetSize() > 2) {
- var2 = this.m_Polyline.inside(var1.x, var1.y);
- }
-
- return var2;
- }
-
- CPolyline GetActualPolyline() {
- return this.m_Polyline;
- }
-
- Point GetNearestPtOnPath(Point var1, CRect var2) {
- Point var3 = new Point(var1.x, var1.y);
- if (this.m_cType == 1) {
- CPathData var4 = this.m_Polyline.GetNearestPtOnPath(var1, var2, this.m_nOnLine);
- var3 = var4.ptNew;
- this.m_nOnLine = var4.nCurrentPt;
- }
-
- return var3;
- }
-
- short GetDragType() {
- return this.m_cType;
- }
- }
-